<?php
class Paneles extends MY_Controller {

	public function __construct()
    {
    	# Al constructor le envío la clase Controlador, y el nombre de la entidad gestionada
    	parent::__construct(get_class($this), 'Panel');

    	$this->title = 'Panel :: Panel de Suministros';
		$this->CARPETA_VISTAS = 'panel/';
		$this->nombre_entidad = 'Panel';
		$this->nuevoPermitido = FALSE; 

		$this->pagina_ver = $this->CARPETA_VISTAS . 'panel_ver_todos_view';
		//$this->pagina_editar = $this->CARPETA_VISTAS . 'panel_edit_view';
		//$this->pagina_filtros_ver = $this->CARPETA_VISTAS . 'panel_filtros_ver_todos_view';

	}


	/* IMPORTANTE: DEBE existir esta función. 
	 * Crea un objeto de la entidad correspondiente y lo pobla con la información obtenida a 
	 * partir del formulario recibido a través de POST.	*/
	protected function getObjetoDesdeForm()
	{
		$idEntidad = is_numeric($this->input->post('txt_id')) ? $this->input->post('txt_id') : NULL;
		
		$objEntidad = $this->getObjeto($idEntidad);
		$objEntidad->nroSalida = $this->input->post('txt_nro_salida');
		$objEntidad->acumulado = $this->input->post('txt_acumulado');
		$objEntidad->tanques_id = $this->input->post('sel_tanques');
		$objEntidad->puestos_id = $this->input->post('sel_puestos');
		$objEntidad->calibracion = $this->input->post('txt_calibracion');
		$objEntidad->stockMinimo = $this->input->post('txt_stock_minimo');
		$objEntidad->ultimoDespacho = $this->input->post('txt_ultimo_despacho');
		$objEntidad->activa = $this->input->post('chk_activa');
		
		$datos['objEntidad'] = $objEntidad;
		$datos['objRelacionados'] = array();

		return $datos;
	}



	/* IMPORTANTE: DEBE existir esta función. 
	 * Carga en el arreglo que luego se pasarán a las vistas, los datos correspondientes a otras entidades que se
	 * necesiten. Por ejemplo, en este método deben cargarse las entidades a las que puede asociarse o relacionarse
	 * la entidad actual. Si no se requiriesen, no se agrega nada. */

	protected function cargarDatosRelacionados($dataView)
	{
		$obj_puesto = new Puesto();
		$dataView['listado_puestos'] = $obj_puesto->get_iterated();		
		$obj_tanque = new Tanque();
		$dataView['listado_tanques'] = $obj_tanque->get_iterated();
		$obj_salida = new Salida();
		$dataView['listado_salidas'] = $obj_salida->get_iterated();
		
		return $dataView;		
	}


	/* IMPORTANTE: DEBE existir esta función. 
	 * Obtiene el listado de elementos de acuerdo a los filtros que se hayan establecido y enviado a través
	 * del método POST. Devuelve un detalle de los filtros aplicados (o vacío si no hubiera filtros)	*/	
	protected function _aplicarFiltros($dataView = array())
	{
		// Creo un objeto del modelo, para poblarlo con los datos que necesito mostrar
		$objEntidad = $this->getObjeto();
		$detalle_filtros = '';

		/*
		$opc_activo = is_numeric($this->input->post('f_opt_activa')) ? $this->input->post('f_opt_activa') : 1;
		if($opc_activo != -1) { 
			$objEntidad->where('activa', $opc_activo); 
			$detalle_filtros .= $opc_activo == 1 ? 'Sólo salidas activas' : 'Sólo salidas no activas';
		}
		*/

		$dataView['objEntidad'] = $objEntidad;
		$dataView['detalle_filtros'] = $detalle_filtros;
		
		return $dataView;
	}

	/* Carga todos los registros de un modelo o entidad (de acuerdo a los filtros o los últimos agregados) */
	public function ver_panel($dataView = array())
	{
		$dataView['entidad_plural'] = 'Paneles';
		parent::ver_panel($dataView);
	} 


   public function lecturaSalida()
	{
		//echo rand(100,999);
	   $id_salida =  $_POST['valueSalida'];
	   $obj_tanque = new salida();
	   $obj_tanque->where('id', $id_salida);
       $listado_tanques = $obj_tanque->get_iterated();
       foreach ($listado_tanques as $salida) 
        {
        	if($salida->id == $id_salida)
        	{
        		echo $salida->ultimoDespacho;
        	}
        }
        
	} 

	public function desactivarSalida()
	{
	   $datos = '';
	   $obj_tanque = new salida();	 
       $listado_tanques = $obj_tanque->get_iterated();
       foreach ($listado_tanques as $salida) 
        {
        	if($salida->activa == 0)
        	{
        		$datos .= $salida->id;
        		$datos .= "\n";
        	}
        }
       
       echo $datos;
	} 


	public function lecturaActiva()
	{
	
	   $datos = ''; // $_POST['idSalida'];
	   $obj_salidaA = new Salida();
	  // $obj_salidaA->where('activa', 1);
       $listado_salidasA = $obj_salidaA->get_iterated();
       foreach ($listado_salidasA as $salidaA) 
        {
        	if($salidaA->activa == 1)
        	{
        		
        		$datos .= $salidaA->id;
        		$datos .= "\n";
        	}
        	
        }
                
        echo $datos;
               
	} 


	/* IMPORTANTE: DEBE existir esta función.
	 * Valida las condiciones que deben cumplirse para que un elemento pueda ELIMINARSE. */
	protected function validarEliminacion($id_elemento)
	{
		//$obj_rol = $this->getObjeto($id_elemento);

		//if($obj_rol->id != NULL && $obj_rol->editable) {
			// Valido si tiene elementos asociados.
			//$obj_usuario = new User_usuario();
	        //$obj_usuario->where('user_rol_id', $id_elemento);

	        //$obj_form = new User_permiso();
	        //$obj_form->where('user_rol_id', $id_elemento);

          //  if ($obj_usuario->count() == 0 && $obj_form->count() == 0) return TRUE;
           // else return FALSE;
		//}
		//else return TRUE;
		return TRUE;
	}

	/* IMPORTANTE: DEBE existir esta función.
	 * Valida las condiciones que deben cumplirse para que un elemento pueda EDITARSE. */
	protected function validarEdicion($id_elemento)
	{
		return TRUE;
	}

	public function eliminar($id_elemento)
	{
		parent::eliminarEntidad($id_elemento);
	}


	

}